﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.ServiceModel.Channels;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.ClienteWs;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.EstabelecimentoWS;
using PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.AvaliacaoWs;

namespace PUBCLUB_2014_VISUAL_STUDIO_PRO_2010.GUI
{
    public partial class ClienteMinhasAvaliacoes : System.Web.UI.Page
    {
        ObjetoCliente cliente = new ObjetoCliente();
        PubClub_Cliente_WS webServiceCliente = new PubClub_Cliente_WS();

        PubClub_Avaliacao_WS webServiceAvaliacao = new PubClub_Avaliacao_WS();

        PubClub_Estabelecimento_WS webServiceEstabelecimento = new PubClub_Estabelecimento_WS();

        TableHeaderRow linhaAvaliacao1 = new TableHeaderRow();

        Label textoEstabelecimento = new Label();
        TableHeaderCell celulaEstabelecimento = new TableHeaderCell();

        Label textoNivelAvaliacao = new Label();
        TableHeaderCell celulaNivelAvaliacao = new TableHeaderCell();

        Label textoComentario = new Label();
        TableHeaderCell celulaComentario = new TableHeaderCell();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["Cliente"] == null)
            {
                Response.Redirect("Login.aspx?Logout=2");
            }
            else
            {
                cliente = webServiceCliente.GetCliente(Convert.ToInt32(Session["Cliente"]));
            }

            textoEstabelecimento.Text = "Pub";
            celulaEstabelecimento.Controls.Add(textoEstabelecimento);
            linhaAvaliacao1.Cells.Add(celulaEstabelecimento);

            textoNivelAvaliacao.Text = "Avaliacação";
            celulaNivelAvaliacao.Controls.Add(textoNivelAvaliacao);
            linhaAvaliacao1.Cells.Add(celulaNivelAvaliacao);

            textoComentario.Text = "Comentário";
            celulaComentario.Controls.Add(textoComentario);
            linhaAvaliacao1.Cells.Add(celulaComentario);

            tabelaMinhasAvaliacoes.Rows.Add(linhaAvaliacao1);

            BindingList<ObjetoAvaliacao> listaAvaliacao = new BindingList<ObjetoAvaliacao>(webServiceAvaliacao.GetAvaliacoesByClienteId(cliente.ClienteId));

            if (listaAvaliacao.Count == 0)
            {
                labelAviso.Text = "Você não avaliou nenhum Pub no momento.";
                labelAviso.ForeColor = System.Drawing.Color.Red;
                labelAviso.Visible = true;
                tabelaMinhasAvaliacoes.Visible = false;
                return;
            }
            else
            {
                tabelaMinhasAvaliacoes.Visible = true;
                int i = 0;
                foreach (var item in listaAvaliacao)
                {
                    TableRow linhaAvaliacao2 = new TableRow();

                    Label textoEstabelecimento2 = new Label();
                    TableCell celulaEstabelecimento2 = new TableCell();

                    Label textoNivelAvaliacao2 = new Label();
                    TableCell celulaNivelAvaliacao2 = new TableCell();

                    Label textoComentario2 = new Label();
                    TableCell celulaComentario2 = new TableCell();

                    if (i % 2 != 0)
                    {
                        linhaAvaliacao2.CssClass = "odd";
                    }

                    i++;

                    textoEstabelecimento2.Text = webServiceEstabelecimento.GetEstabelecimento(item.EstabelecimentoId).NomeFantasia;                    
                    celulaEstabelecimento2.Controls.Add(textoEstabelecimento2);

                    linhaAvaliacao2.Cells.Add(celulaEstabelecimento2);

                    switch (Convert.ToInt32(item.Nota))
                    {
                        case 1:
                            textoNivelAvaliacao2.Text = "Péssimo";
                            break;
                        case 2:
                            textoNivelAvaliacao2.Text = "Ruim";
                            break;
                        case 3:
                            textoNivelAvaliacao2.Text = "Bom";
                            break;
                        case 4:
                            textoNivelAvaliacao2.Text = "Ótimo";
                            break;
                        case 5:
                            textoNivelAvaliacao2.Text = "Excelente";
                            break;
                    }

                    celulaNivelAvaliacao2.Controls.Add(textoNivelAvaliacao2);
                    linhaAvaliacao2.Cells.Add(celulaNivelAvaliacao2);

                    textoComentario2.Text = item.Comentario;
                    celulaComentario2.Controls.Add(textoComentario2);
                    linhaAvaliacao2.Cells.Add(celulaComentario2);

                    tabelaMinhasAvaliacoes.Rows.Add(linhaAvaliacao2);

                }
            }
        }
    }
}